package main

import "fmt"

/**
四种变量声明
*/

var gA = 1023

func main() {

	// 方法一：声明一个变量 默认值0
	var a int
	fmt.Println("a = ", a)

	// 方法二：声明一个变量 给定初始值
	var b int = 100
	fmt.Println("b = ", b)

	// 方法三：声明变量时，省去类型，通过值自动匹配类型
	var c = 100.1
	fmt.Println("c = ", c)

	fmt.Printf("type of c %T \n", c)

	// 方法四： 自动匹配
	e := 20
	fmt.Printf("e=%d type %T\n", e, e)

	fmt.Printf("【注意】:=只能够用在函数体内声明局部变量  全局变量只能通过前三种方法声明")

	fmt.Println("全局变量", gA)

	var xx, yy int = 10, 29
	fmt.Println("xx=", xx, "yy=", yy)

	var ll, kk = 108, "hao"
	fmt.Println("ll=", ll, "kk=", kk)

	//多行多变量声明

	var (
		m1 int    = 100
		m2 string = "haopeng"
	)

	fmt.Println("m1=", m1, "m2=", m2)

}
